mock-property ![Version Badge](https://versionbadg.es/ljharb/mock-property.svg)
![Downloads](https://img.shields.io/npm/dm/mock-property.svg)
![npm badge](https://nodei.co/npm/mock-property.png?downloads=true&stars=true)
Given an object and a property, replaces a property descriptor (or deletes it), and returns a thunk to restore it.
Example
var mockProperty = require('mock-property');
var assert = require('assert');
var i = 0;
var object = {
a: 1,
get b() {
i += 1;
return 'b ' + i;
}
};
assert.equal(object.a, 1);
assert.equal(object.b, 'b 1');
assert.equal(object.b, 'b 2');
var restoreA = mockProperty(object, 'a', { 'delete': true });
assert.equal('a' in object, false);
var restoreB = mockProperty(object, 'b', { value: 42 });
assert.equal(object.b, 42);
restoreA();
assert.equal('a' in object, true);
restoreB();
assert.equal(object.b, 'b 3');
Tests
Simply clone the repo, npm install
, and run npm test
Security
Please email @ljharb or see https://tidelift.com/security if you have a potential security vulnerability to report.